package com.fluidops.keyword.label.provider;

import org.openrdf.model.URI;
import org.openrdf.model.ValueFactory;
import org.openrdf.model.impl.ValueFactoryImpl;

public class Vocabulary {
	protected static final ValueFactory VF = ValueFactoryImpl.getInstance();

	/**
	 * DCTerms
	 */
	public static class DCTERMS{
		public static final String dcterms = "http://purl.org/dc/terms/";
		
		public static final URI TITLE = VF.createURI(dcterms, "title");
		public static final URI LANGUAGE = VF.createURI(dcterms, "language");
		public static final URI DESCRIPTION = VF.createURI(dcterms, "description");
		public static final URI IDENTIFIER = VF.createURI(dcterms, "identifier");
		public static final URI ISSUED = VF.createURI(dcterms, "issued");
		public static final URI HAS_PART = VF.createURI(dcterms, "hasPart");
		public static final URI CREATED = VF.createURI(dcterms, "created");
		public static final URI TEMPORAL = VF.createURI(dcterms, "temporal");
		public static final URI FORMAT = VF.createURI(dcterms, "format");
	}
	
	/*
	public static final String dcterms = "http://purl.org/dc/terms/";
	public static final URI TITLE = VF.createURI(dcterms, "title");
	public static final URI DATE = VF.createURI(dcterms, "date");
	public static final URI CREATED = VF.createURI(dcterms, "created");
	public static final URI MODIFIED = VF.createURI(dcterms, "modified");
	public static final URI CREATOR = VF.createURI(dcterms, "creator");
	public static final URI PUBLISHER = VF.createURI(dcterms, "publisher");
	
	public static final URI DESCRIPTION = VF.createURI(dcterms, "description");
	public static final URI LICENSE = VF.createURI(dcterms, "license");
	public static final URI LANGUAGE = VF.createURI(dcterms, "language");
	public static final URI IDENTIFIER = VF.createURI(dcterms, "identifier");
	public static final URI TEMPORAL = VF.createURI(dcterms, "temporal");
	public static final URI ISSUED = VF.createURI(dcterms, "issued");
	public static final URI HAS_PART = VF.createURI(dcterms, "hasPart");
*/
	/**
	 * DCAT
	 */

	public static class DCAT{
		public static final String NAMESPAPCE = "http://www.w3.org/ns/dcat#";

		public static final URI SIZE = VF.createURI(NAMESPAPCE, "size");
		public static final URI DATA_DICTIONARY = VF.createURI(NAMESPAPCE, "dataDictionary");
		
		public static final URI CATALOG = VF.createURI(NAMESPAPCE, "Catalog");
		
		public static final URI ACCESS_URL = VF.createURI(NAMESPAPCE, "accessURL");
		
		public static final URI DATASET_PROPERTY = VF.createURI(NAMESPAPCE, "dataset");
		public static final URI DATASET = VF.createURI(NAMESPAPCE, "Dataset");
		
		public static final URI DISTRIBUTION_PROPERTY = VF.createURI(NAMESPAPCE, "distribution");
	    public static final URI DISTRIBUTION = VF.createURI(NAMESPAPCE, "Distribution");
	    
	    public static final URI KEYWORD = VF.createURI(NAMESPAPCE, "keyword");
	}
	/*
	 * 
	 * 
    public static final URI DCAT_TRIPLES = null;
    public static final String dcat = "http://www.w3.org/ns/dcat#";
    public static final URI DCAT_CATALOG = VF.createURI(dcat, "Catalog");
    public static final URI DCAT_CATALOGDATASET = VF.createURI(dcat, "dataset");
    public static final URI DCAT_SIZE = VF.createURI(dcat, "size");
    public static final URI DCAT_DATASET_DISTRIBUTION = VF.createURI(dcat, "distribution");
    public static final URI DCAT_DISTRIBUTION = VF.createURI(dcat, "Distribution");
    public static final URI DCAT_ACCESSURL = VF.createURI(dcat, "accessURL");
    public static final URI DCAT_GRAPHURI = VF.createURI(dcat, "graphURI");
    public static final URI DCAT_DATASET = VF.createURI(dcat, "Dataset");
    public static final URI DCAT_KEYWORD = VF.createURI(dcat, "keyword");
    public static final URI DCAT_DOWNLOAD = VF.createURI(dcat, "Download");
    public static final URI DCAT_THEME = VF.createURI(dcat, "theme");
    public static final URI DCAT_DATA_DICTIONARY = VF.createURI(dcat, "dataDictionary");
	 */
	/**
	 * VoID
	 */
	/*
	public static final String voID = "http://rdfs.org/ns/void#";
	public static final URI VOID_SPARQLENDPOINT = VF.createURI(voID, "sparqlEndpoint");
	public static final URI VOID_EXAMPLERESOURCE = VF.createURI(voID, "exampleResource");
	public static final URI VOID_VOCABULARY = VF.createURI(voID, "vocabulary");
	public static final URI VOID_LINKSET = VF.createURI(voID, "Linkset");
	public static final URI VOID_TARGET = VF.createURI(voID, "target");
	public static final URI VOID_SUBSET = VF.createURI(voID, "subset");
	public static final URI VOID_LINKPREDICATE = VF.createURI(voID, "linkPredicate");
	public static final URI VOID_TRIPLES = VF.createURI(voID, "triples");
	public static final URI VOID_DATASET = VF.createURI(voID, "Dataset");
    */
	/**
	 * FoaF
	 */
	public static final class FOAF{
		public static final String foaf = "http://xmlns.com/foaf/0.1/";
		
		public static final URI PAGE = VF.createURI(foaf, "page");
		public static final URI AGENT = VF.createURI(foaf, "Agent");
		public static final URI NAME = VF.createURI(foaf, "name");
	}
	
	/*
	public static final String foaf = "http://xmlns.com/foaf/0.1/";
	public static final URI FOAF_NAME = VF.createURI(foaf, "name");
	public static final URI FOAF_AGENT = VF.createURI(foaf, "Agent");
	public static final URI FOAF_HOMEPAGE = VF.createURI(foaf, "homepage");
	public static final URI FOAF_PAGE = VF.createURI(foaf, "page");
	*/
	/**
	 * DataCube
	 */

	public static class DataCube{
		public static final String NAMESPACE = "http://purl.org/linked-data/cube#";

		public static final URI DATASET = VF.createURI(NAMESPACE, "DataSet");
		public static final URI DATASET_RECORD = VF.createURI(NAMESPACE, "DataSetRecord");
		public static final URI DIMENSION_VALUE  = VF.createURI(NAMESPACE, "DimensionValue");
		public static final URI DATASET_PREDICATE = VF.createURI(NAMESPACE, "dataSet");
		public static final URI OBSERVATION = VF.createURI(NAMESPACE, "Observation");
		public static final URI DIMENSION = VF.createURI(NAMESPACE, "dimension");
		public static final URI DIMENSION_PROPERTY = VF.createURI(NAMESPACE, "DimensionProperty");
		public static final URI MEASURE_PROPERTY = VF.createURI(NAMESPACE, "MeasureProperty");
		public static final URI ATTRIBUTE_PROPERTY = VF.createURI(NAMESPACE, "AttributeProperty");
		public static final URI MEASURE = VF.createURI(NAMESPACE, "measure");
		public static final URI ATTRIBUTE = VF.createURI(NAMESPACE, "attribute");
		public static final URI STRUCTURE = VF.createURI(NAMESPACE, "structure");
		public static final URI COMPONENT = VF.createURI(NAMESPACE, "component");
		public static final URI DATA_STRUCTURE_DEFINITION = VF.createURI(NAMESPACE, "DataStructureDefinition");
		public static final URI COMPONENT_SPECIFICATION = VF.createURI(NAMESPACE, "ComponentSpecification");
		public static final URI ORDER  = VF.createURI(NAMESPACE, "order");
		public static final URI CODE_LIST  = VF.createURI(NAMESPACE, "codeList");
	}
	/*
    public static final String qb = "http://purl.org/linked-data/cube#";
    public static final URI DATASET = VF.createURI(qb, "DataSet");
    public static final URI DATASET_PREDICATE = VF.createURI(qb, "dataSet");
    public static final URI OBSERVATION = VF.createURI(qb, "Observation");
    public static final URI DIMENSION = VF.createURI(qb, "dimension");
    public static final URI DIMENSION_PROPERTY = VF.createURI(qb, "DimensionProperty");
    public static final URI MEASURE_PROPERTY = VF.createURI(qb, "MeasureProperty");
    public static final URI ATTRIBUTE_PROPERTY = VF.createURI(qb, "AttributeProperty");
    public static final URI MEASURE = VF.createURI(qb, "measure");
    public static final URI ATTRIBUTE = VF.createURI(qb, "attribute");
    public static final URI STRUCTURE = VF.createURI(qb, "structure");
    public static final URI COMPONENT = VF.createURI(qb, "component");
    public static final URI DATA_STRUCTURE_DEFINITION = VF.createURI(qb, "DataStructureDefinition");
    public static final URI COMPONENT_SPECIFICATION = VF.createURI(qb, "ComponentSpecification");
    public static final URI ORDER  = VF.createURI(qb, "order");
    public static final URI CODE_LIST  = VF.createURI(qb, "codeList");
	 */
	/**
	 * SDMX-DIMENSION
	 */
	public static class SDMX{
		public static final String sdmx_dimension = "http://purl.org/linked-data/sdmx/2009/dimension#";
		public static final String sdmx_attribut = "http://purl.org/linked-data/sdmx/2009/attribute#";
		public static final String sdmx_value = "http://purl.org/linked-data/sdmx/2009/measure#";
		
		public static final URI REF_AREA = VF.createURI(sdmx_dimension, "refArea");
		public static final URI REF_PERIOD = VF.createURI(sdmx_dimension, "refPeriod");
		
		public static final URI VIS_COUNTRY = VF.createURI(sdmx_attribut, "visArea");
		
		public static final URI OBS_VALUE = VF.createURI(sdmx_value, "obsValue");
		
		public static final URI TIME_PERIOD = VF.createURI(sdmx_dimension, "timePeriod");
	}

	public static final String sd = "http://www.w3.org/ns/sparql-service-description#";
	public static final URI SD_DEFAULT_GRAPH = VF.createURI(sd, "defaultGraph");

	
	public static class SKOS{
		public static final String skos = "http://www.w3.org/2004/02/skos/core#";
		
		public static final URI HAS_TOP_CONCEPT = VF.createURI(skos, "hasTopConcept");
		public static final URI NOTATION = VF.createURI(skos, "notation");
		public static final URI PREFLABEL = VF.createURI(skos, "prefLabel");
		public static final URI DEFINITION = VF.createURI(skos, "definition");
		public static final URI CONCEPT_SCHEME = VF.createURI(skos, "ConceptScheme");
	}
	
	public static class Eurostat{
		public static final String ES_PROPERTY = "http://eurostat.linked-statistics.org/property#";
		
		public static final URI PROP_GEO = VF.createURI(ES_PROPERTY, "geo");
	}
	
	/*
	 * 
	public static final String skos = "http://www.w3.org/2004/02/skos/core#";
	public static final URI SKOS_HAS_TOP_CONCEPT = VF.createURI(skos, "hasTopConcept");
	public static final URI SKOS_NOTATION = VF.createURI(skos, "notation");
	public static final URI SKOS_PREFLABEL = VF.createURI(skos, "prefLabel");
	public static final URI SKOS_DEFINITION = VF.createURI(skos, "definition");
	public static final URI SKOS_CONCEPT_SCHEME = VF.createURI(skos, "ConceptScheme");

	*/
}
